using System;
using UnityEngine;

namespace AdvancedInspector
{
	[AttributeUsage(AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field)]
	public class GroupAttribute : Attribute
	{
		private string name = string.Empty;

		private string style = string.Empty;

		private int priority;

		private bool expandable = true;

		private Color color = Color.clear;

		public string Name
		{
			get
			{
				return name;
			}
			set
			{
				name = value;
			}
		}

		public string Style
		{
			get
			{
				return style;
			}
			set
			{
				style = value;
			}
		}

		public int Priority
		{
			get
			{
				return priority;
			}
			set
			{
				priority = value;
			}
		}

		public bool Expandable
		{
			get
			{
				return expandable;
			}
			set
			{
				expandable = value;
			}
		}

		public Color Color
		{
			get
			{
				return color;
			}
			set
			{
				color = value;
			}
		}

		public GroupAttribute(string name)
			: this(name, string.Empty, 0)
		{
		}

		public GroupAttribute(string name, int priority)
			: this(name, string.Empty, priority)
		{
		}

		public GroupAttribute(string name, string style)
			: this(name, style, 0)
		{
		}

		public GroupAttribute(string name, float r, float g, float b)
			: this(name, string.Empty, 0, r, g, b, 1f)
		{
		}

		public GroupAttribute(string name, string style, int priority)
			: this(name, style, priority, 0f, 0f, 0f, 0f)
		{
		}

		public GroupAttribute(string name, string style, float r, float g, float b)
			: this(name, style, 0, r, g, b, 1f)
		{
		}

		public GroupAttribute(string name, string style, int priority, float r, float g, float b)
			: this(name, style, priority, r, g, b, 1f)
		{
		}

		public GroupAttribute(string name, string style, int priority, float r, float g, float b, float a)
		{
			this.name = name;
			this.style = style;
			this.priority = priority;
			color = new Color(r, g, b, a);
		}
	}
}
